// ------------------------------------------------------------------------
// 版权信息
// 版权归重庆虫儿飞科技有限公司所有。
// 所有权利保留。
// 官方网站：https://netokit.com
// 许可证信息
// Neto.Kit 项目主要遵循 MIT 许可证和 Apache 许可证（版本 2.0）进行分发和使用。
// 许可证的完整文本可以在源代码树根目录中的 LICENSE-APACHE 和 LICENSE-MIT 文件中找到。
// 
// 使用条款
// 使用本代码应遵守相关法律法规和许可证的要求。
// 
// 免责声明
// 对于因使用本代码而产生的任何直接、间接、偶然、特殊或后果性损害，我们不承担任何责任。
// 
// 其他重要信息
// Neto.Kit 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。
// 有关 Neto.Kit 项目的其他详细信息，请参阅位于源代码树根目录中的 COPYRIGHT 和 DISCLAIMER 文件。
// 
// 更多信息
// 请访问 https://netokit.com 获取更多关于 Neto.Kit 项目的许可证和版权信息。
// ------------------------------------------------------------------------

#region

using Neto.Db.SqlSugar.Interfaces;
using Neto.PermissionGenerate;

#endregion

namespace Neto.Core.SeedData;

public class MenuSeedData : ISqlSugarEntitySeedData<SysMenu>
{
    public IEnumerable<SysMenu> HasData()
    {
        return GetData();
    }

    public static IEnumerable<SysMenu> GetData()
    {
        ;
        return new List<SysMenu>
        {
            new()
            {
                Id = 10000,
                Area = "Api",
                MenuPCode = "Api",
                Code = "Sys_Home",
                Name = "首页",
                Icon = "mdi:monitor-dashboard",
                IsEnable = true,
                Sort = 1,
                Url = "/home",
                UrlKey = "home",
                I18nKey = "route.home",
                IsHomePage = true,
                PgType = PgType.Menu
            },

            #region 用户管理

            new()
            {
                Id = 20000,
                Area = "Api",
                MenuPCode = "Api",
                Code = "Sys_Manage",
                Name = "用户管理",
                Icon = "material-symbols:person",
                IsEnable = true,
                Sort = 2,
                Url = "/manage",
                UrlKey = "manage",
                I18nKey = "route.manage",
                PgType = PgType.Directory
            },
            //new SysMenu(){Id=20002,Area="Api",MenuPCode="Sys_Manage",Code="Sys_User",Name="用户管理",Icon="ic:round-manage-accounts",IsEnable=true,Sort=1,Url="/manage/user",UrlKey="manage_user",I18nKey="route.manage_user",IsPermission=true,PgType=PgType.Menu},
            //new SysMenu(){Id=20003,Area="Api",MenuPCode="Sys_Manage",Code="Sys_Role",Name="角色管理",Icon="carbon:user-role",IsEnable=true,Sort=2,Url="/manage/role",UrlKey="manage_role",I18nKey="route.manage_role",IsPermission=true,PgType=PgType.Menu},
            //new SysMenu(){Id=20004,Area="Api",MenuPCode="Sys_Manage",Code="Sys_Menu",Name="菜单管理",Icon="material-symbols:route",IsEnable=true,Sort=3,Url="/manage/menu",UrlKey="manage_menu",I18nKey="route.manage_menu", IsPermission = true,PgType=PgType.Menu},

            new SysMenu(){Id=20010,Area="Api",MenuPCode="Api",Code="Sys_User_Center",Name="个人中心",Icon="material-symbols:person-outline",IsEnable=true,Sort=999,Url="/user-center",UrlKey="user-center",I18nKey="route.user-center", IsHideMenu=true,PgType=PgType.Menu},

            new SysMenu(){Id=20020,Area="Api",MenuPCode="Api",Code="Sys_Notice_Center",Name="通知公告详情",Icon="pepicons-pop:bulletin-notice",IsEnable=true,Sort=999,Url="/notice-center/:id",UrlKey="notice-center",I18nKey="route.notice-center",IsHideMenu=true,PgType=PgType.Menu},
            
            #endregion


            #region 邮件管理

            new()
            {
                Id = 30000,
                Area = "Api",
                MenuPCode = "Api",
                Code = "Sys_EmailManage",
                Name = "邮件管理",
                Icon = "ri:mail-settings-line",
                IsEnable = true,
                Sort = 3,
                Url = "/email-manage",
                UrlKey = "email-manage",
                I18nKey = "route.email-manage",
                PgType = PgType.Directory
            },
            //new SysMenu(){Id=30002,Area="Api",MenuPCode="Sys_EmailManage",Code="Sys_EmailConfig",Name="邮件发送配置",Icon="ri:mail-settings-line",IsEnable=true,Sort=1,Url="/email-manage/config",UrlKey="email-manage_config",I18nKey="route.email-manage_config", IsPermission = true,PgType=PgType.Menu},
            //new SysMenu(){Id=30003,Area="Api",MenuPCode="Sys_EmailManage",Code="Sys_EmailRecord",Name="邮件发送记录",Icon="fluent:mail-list-28-regular",IsEnable=true,Sort=2,Url="/email-manage/record",UrlKey="email-manage_record",I18nKey="route.email-manage_record", IsPermission = true,PgType=PgType.Menu},
            //new SysMenu(){Id=30004,Area="Api",MenuPCode="Sys_EmailManage",Code="Sys_EmailTemplate",Name="邮件模板",Icon="fluent:mail-template-20-regular",IsEnable=true,Sort=3,Url="/email-manage/template",UrlKey="email-manage_template",I18nKey="route.email-manage_template", IsPermission = true,PgType=PgType.Menu},

            #endregion


            #region 文件管理

            //new SysMenu(){Id=40000,Area="Api",MenuPCode="Api",Code="Sys_FileManage",Name="文件管理",Icon="material-symbols:folder-managed-outline-sharp",IsEnable=true,Sort=4,Url="/file-manage",UrlKey="file-manage",I18nKey="route.file-manage", IsPermission = true,PgType=PgType.Directory},
            //new SysMenu(){Id=40002,Area="Api",MenuPCode="Sys_FileManage",Code="Sys_FileCloud",Name="云存储",Icon="ic:outline-cloud",IsEnable=true,Sort=1,Url="/file-manage/cloud", UrlKey="file-manage_cloud",I18nKey="route.file-manage_cloud",IsPermission = true,PgType=PgType.Menu},
            //new SysMenu(){Id=40003,Area="Api",MenuPCode="Sys_FileManage",Code="Sys_FileCustomize",Name="自定义存储",Icon="material-symbols:attach-file-rounded",IsEnable=true,Sort=2,Url="/file-manage/customize", UrlKey="file-manage_customize",I18nKey="route.file-manage_customize",IsPermission = true,PgType=PgType.Menu},
            //new SysMenu(){Id=40004,Area="Api",MenuPCode="Sys_FileManage",Code="Sys_FileLocal",Name="本地存储",Icon="clarity:server-line",IsEnable=true,Sort=3,Url="/file-manage/local", UrlKey="file-manage_local",I18nKey="route.file-manage_local",IsPermission = true,PgType=PgType.Menu},

            #endregion

            #region 系统管理

            new()
            {
                Id = 50000,
                Area = "Api",
                MenuPCode = "Api",
                Code = "Sys_Setting",
                Name = "系统设置",
                Icon = "material-symbols:settings",
                IsEnable = true,
                Sort = 100,
                Url = "/sys-setting",
                UrlKey = "sys-setting",
                I18nKey = "route.sys-setting",
                PgType = PgType.Directory
            },
            //new()
            //{
            //    Id = 50001,
            //    Area = "Api",
            //    MenuPCode = "Sys_Setting",
            //    Code = "Sys_SensitiveWord",
            //    Name = "敏感词管理",
            //    Icon = "game-icons:interdiction",
            //    IsEnable = true,
            //    Sort = 10,
            //    Url = "/sys-setting/sensitive-word",
            //    UrlKey = "sys-setting_sensitive-word",
            //    I18nKey = "route.sys-setting_sensitive-word",
            //    IsPermission = true,
            //    PgType = PgType.Menu
            //},
            //new SysMenu(){Id=50002,Area="Api",MenuPCode="Sys_Setting",Code="Sys_Token",Name="令牌管理",Icon="material-symbols:contextual-token",IsEnable=true,Sort=20,Url="/sys-setting/token",UrlKey="sys-setting_token",I18nKey="route.manage_token", IsPermission = true,PgType=PgType.Menu},
            //new SysMenu(){Id=50003,Area="Api",MenuPCode="Sys_Setting",Code="Sys_I18n",Name="全球化本地化",Icon="heroicons:language",IsEnable=true,Sort=30,Url="/sys-setting/globalization-localization",UrlKey="sys-setting_globalization-localization",I18nKey="route.sys-setting_globalization-localization", IsPermission = true,PgType=PgType.Menu},
            //new()
            //{
            //    Id = 50004,
            //    Area = "Api",
            //    MenuPCode = "Sys_Setting",
            //    Code = "Sys_IpWhitelist",
            //    Name = "IP白名单",
            //    Icon = "heroicons:lock-closed",
            //    IsEnable = true,
            //    Sort = 40,
            //    Url = "/sys-setting/ip-whitelist",
            //    UrlKey = "sys-setting_ip-whitelist",
            //    I18nKey = "route.sys-setting_ip-whitelist",
            //    IsPermission = true,
            //    PgType = PgType.Menu
            //},
            new()
            {
                Id = 50005,
                Area = "Api",
                MenuPCode = "Sys_Setting",
                Code = "Sys_Swagger",
                Name = "Swagger菜单",
                Icon = "devicon:swagger",
                IsEnable = true,
                Sort = 6,
                Url = "/sys-setting/swagger",
                OpenType = MenuOpenType.内链,
                UrlKey = "sys-setting_swagger",
                I18nKey = "route.sys-setting_swagger",
                PgType = PgType.Menu,
            },

            #endregion

            #region 代码生成

            new()
            {
                Id = 60000,
                Area = "Api",
                MenuPCode = "Api",
                Code = "CodeGeneration",
                Name = "代码生成",
                Icon = "bx:code-block",
                IsEnable = true,
                Sort = 101,
                Url = "/code-generation",
                UrlKey = "code-generation",
                I18nKey = "route.code-generation",
                PgType = PgType.Directory
            },

            // new SysMenu(){Id=50002,Area="Api",MenuPCode="Dev",Code="Dev",Name="代码生成配置",Icon="material-symbols:folder-managed-outline-sharp",IsEnable=true,Sort=4,Url="/code-generation",UrlKey="code-generation", IsPermission = true,PgType=PgType.Menu},

            #endregion

            #region 日志管理

            new()
            {
                Id = 70000,
                Area = "Api",
                MenuPCode = "Api",
                Code = "LogManage",
                Name = "日志管理",
                Icon = "tdesign:system-log",
                IsEnable = true,
                Sort = 102,
                UrlKey = "log-manage",
                I18nKey = "route.log-manage",
                PgType = PgType.Directory
            },

            #endregion
        };
    }
}